The invention relates to the management of interruptions in a computer platform. The platform (also called a machine or node) to which the invention applies comprises at least one unit (also called a module). A platform of the NUMA (Non-Uniform Memory Access) type is particularly well suited to the invention and will therefore be used as an example in the description. This platform comprises a plurality of units. In this type of platform, the units are connected to one another. A unit comprises at least one processor. This platform comprises an operating system common to all the units and includes what one skilled in the art most often calls a xe2x80x9ckernel.xe2x80x9d The kernel handles a certain number of basic functions. The two main functions of the kernel are storage management and task management.
In the invention, the operating system offers the capability to create extension modules external to the kernel, such as extension kernels. Therefore, the system has a basic kernel and extension kernels associated with peripheral drivers. An operating system of the UNIX (registered trademark) xe2x80x9cmodern versionxe2x80x9d type is entirely suitable in the present case.
The subjects of the invention are a process for managing interruptions in a computer platform, and a computer platform for implementing the process.
By definition, in a computer platform, the management of tasks by the kernel of the operating system includes the handling and processing of interruptions. The management of interruptions depends on the number and the types of peripherals present in the platform. The interruptions are associated with peripheral drivers. Interrupt management is included in the kernel of the operating system. By definition, the kernel is a source program written in a high-level language and is therefore subject, before its actual use, to a compilation. A compiling program designates a piece of software that translates the program in its entirety and then runs it.
The big problem is the close link that exists between the management of the interruptions and the kernel of the operating system. The compilation of the kernel sets a configuration state of the platform. The result is that a compilation sets a maximum number of interruptions that can be handled by the operating system. In the description, the term configuration designates the composition of a unit, i.e., the capacity of the memory, the types of disk readers, the capacity of the hard drive, the type of printer, etc. The term configuration also includes the number of units present in the platform.
The compilation of the kernel therefore has the serious drawback of limiting the total number of interruptions. This limitation is an impediment to the use of certain xe2x80x9clarge-scalexe2x80x9d configurations that evolve very rapidly. In fact, the set state of the system and of the number of interruptions prevents a system from evolving. The addition or deletion of units in the platform becomes problematic.
Another problem is that a simple modification of the hardware configuration involves a modification of the interrupt management and hence of the source program in the kernel. This modification of the program involves a complete recompilation of the basic kernel. As is known to one skilled in the art, a recompilation of the kernel of the operating system is extremely costly in terms of money.
A recompilation is also costly in terms of time in the sense that it involves completely re-enabling the operating system/platform pair. In fact, after the recompilation, the kernel of the operating system may not function or not systematically correspond to a platform. A new version of an operating system in a platform must undergo series of tests in all the platforms subjected to an operating system change.
One solution provided by the prior art for solving the problem of the compilation and the drawbacks it entails consists in that the kernels are generally sold compiled with a maximum number of peripheral resource drivers, in order to be compatible with a majority of types of peripheral resources. To a certain extent, all the configurations possible in a platform are provided for. This anticipatory aspect has the serious consequence of unnecessarily wasting memory space for xe2x80x9csmallscalexe2x80x9d configurations. For example, an interrupt management system can provide for a number of interruptions on the order of one hundred thousand, while a system with a small-scale configuration requires only about ten interruptions.
Another big problem is the loss of performance in the work of the processors in a platform as a result of the constant evolution of the platforms. A platform of the NUMA type is generally constituted by several units connected to one another through a bus. The various units therefore communicate with one another through only one bus, called the system bus. A unit includes at least one processor surrounded by hardware elements such as memories, peripheral drivers, etc. The current trend is to increase the number of units in a platform. The data traffic from one unit to another is becoming greater and greater, and the bus that allows communication between the units is comparable to a bottleneck. Added to this data transfer is the management of interruptions. In this type of system with several units, the management of interruptions takes place at the global level of the system. Increasing the number of units in a platform makes it difficult to manage interruptions. In fact, in this type of multi-unit system, it is known to one skilled in the art that the access time by a processor to the memory varies depending on the location of the data accessed. For a given processor, accesses to a part of local memory, physically located in the same unit as the processor, are distinguished from accesses to a part of remote memory, physically located in one or more units other than the one in which the processor is located. A processor performs better when the hardware elements constituting the unit on which it runs are close to it in terms of distance.
A first object of the invention is to provide an interrupt management that is adaptable to platforms whose configuration is constantly evolving, and thus not to impose a recompilation of the basic kernel of the operating system following a modification of the configuration of the platform.
A second object is to create an interface compatible with the existing platforms. The existing platforms could thus retain their basic kernels and a fortiori their own interrupt management systems.
A third object of the invention is to provide an interrupt management that improves the performance of the processors.
A fourth object is to considerably reduce the cost in terms of money and time caused by the modification of the configuration of a platform.
To this end, the subject of the invention is a process for managing interruptions in a computer platform comprising at least one unit including at least one processor and at least one interrupt controller, and an operating system including a basic kernel that makes it possible to create extension modules external to said basic kernel, characterized in that it consists of creating at least one interrupt managing extension module external to the basic kernel in order to relieve the basic kernel of the management of interruptions.
The result is a computer platform comprising at least one unit including at least one processor and at least one interrupt controller, said platform including an operating system that makes it possible to create extension modules and interrupt lines that connect the resources to the interrupt controllers, characterized in that it comprises an interrupt managing software extension module for implementing the process.